package myzzyl.service;

import myzzyl.domain.dto.LoginDto;
import myzzyl.domain.dto.SysUserDto;
import myzzyl.domain.pojo.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import myzzyl.domain.vo.SysUserVo;
import myzzyl.response.PageResponse;

import java.util.List;

/**
* @author 33249
* @description 针对表【sys_user(用户表)】的数据库操作Service
* @createDate 2025-08-17 16:23:55
*/
public interface SysUserService extends IService<SysUser> {

    /**
     * 获取用户列表数据
     * @return 返回值
     */
    List<SysUser> getAll();

    /**
     * 分页获取用户列表数据
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @param sysUserDto 用户请求表单封装类
     * @return 返回值
     */
    PageResponse<SysUserVo> pageQuery(Integer pageNum, Integer pageSize, SysUserDto sysUserDto);

    /**
     * 新增用户
     * @param sysUserDto 用户请求表单封装类
     * @return 返回值
     */
    boolean add(SysUserDto sysUserDto);

    /**
     * 编辑用户
     * @param sysUserDto 用户请求表单封装类
     * @return 返回值
     */
    boolean edit(SysUserDto sysUserDto);

    /**
     * 删除用户
     * @param id 用户id
     * @return 返回值
     */
    boolean deleteUserById(Long id);

    /**
     * enableOrDisableUser
     * @param id 用户id
     * @param status 更新的状态
     * @return 返回值
     */
    boolean enableOrDisableUser(Long id, String status);

    /**
     * 重置密码
     * @param id 用户id
     * @return 返回值
     */
    boolean resetPassword(Long id);

    /**
     * 用户登录
     * @param loginDto 用户登录表单请求封装类
     * @return 返回值
     */
    SysUserVo login(LoginDto loginDto);
}
